<template>
<div>
<van-form @submit="onSubmit">
  <van-field
    v-model="username"
    name="username"
    label="用户名"
    placeholder="用户名"
    :rules="[{ required: true, message: '请填写用户名' }]"
  />
  <van-field
    v-model="password"
    type="password"
    name="passowrd"
    label="密码"
    placeholder="密码"
    :rules="[{ required: true, message: '请填写密码' }]"
  />
  <div style="margin: 16px;">
    <van-button round block type="info" native-type="submit">
      提交
    </van-button>
  </div>
</van-form>
</div>
</template>
<script>
import Vue from 'vue';
import { Form } from 'vant';

Vue.use(Form);
export default{
data() {
    return {
      username: '',
      password: '',
    };
  },
  methods: {
    onSubmit(values) {
      //   调用vuex action 登录方法 传递了登录数据values 这个参数在action LOGIN方法中继续被传递成为调用post请求时传递的数据 ，
      //   这个方法返回的是promise对象 所以可以使用.then方法
      this.$store.dispatch('LOGIN',values).then((res)=>{
        alert(res.message); //不管登录成功与否，都显示登录反馈信息
        if(res.success){  // 如果登录成功，则跳转到投资页面
          this.$router.push('/invest');
        }else{
          // 如果登录失败则清空token 然后不做处理继续停留在登录页面
          this.$store.commit('removeToken');
        }

      })
      console.log('submit', values);
    },
  },
}
</script>